﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataAccessComponents;
using System.Collections.ObjectModel;
using DAL;

namespace BusinessLogicLayer
{
    public class AktualnosciBL : IBusinessLogicLayer<Aktualnosci>
    {
        private DbOperations dal = new DbOperations();

        /// <summary>
        /// Funckcja dodająca aktualnosci do bazy danych
        /// </summary>
        /// <param name="objDodaj">Obiekt do dodania</param>
        /// <returns>Indeks dodanego wiersza</returns>
        public int dodaj(Aktualnosci objDodaj)
        {
            return dal.dodajAktualnosci(objDodaj);
        }

        /// <summary>
        /// Funkcja usuwająca aktualnosci z bazy danych
        /// </summary>
        /// <param name="idusun">Id wiersza do usuniecia</param>
        public void usun(int idusun)
        {
            dal.usunAktualnosci(idusun);
        }

        /// <summary>
        /// Funkcja akutalizująca aktualnosci
        /// </summary>
        /// <param name="objAktualizuj">Obiekt do aktualizacji </param>
        public void aktualizuj(Aktualnosci objAktualizuj)
        {

            dal.aktualizujAktualnosci(objAktualizuj);
        }

        /// <summary>
        /// Funkcja zwracająca aktualnosci o danym id
        /// </summary>
        /// <param name="idpobierz"></param>
        /// <returns></returns>
        public Aktualnosci pobierz(int idpobierz)
        {

            Aktualnosci aktualnosci = dal.pobierzAktualnosci(idpobierz);

            return aktualnosci;
        }

        /// <summary>
        /// Funkcja zwracająca liste aktualnosciów
        /// </summary>
        /// <returns></returns>
        public ObservableCollection<Aktualnosci> pobierzListe()
        {
            ObservableCollection<Aktualnosci> tmp = dal.pobierzListeAktualnosci();

            return tmp;
        }

        /// <summary>
        /// Funkcja aktualizująca pozyjce aktualnosciow w bazie danych, a gdy id_aktualnosci wynosi 0 to dodaje go do bazy
        /// </summary>
        /// <param name="lista">Lista obiektów do zakutalizowania</param>
        /// <returns></returns>
        public bool aktualizujListe(ObservableCollection<Aktualnosci> lista)
        {
            AdresBL adresBL = new AdresBL();
            foreach (Aktualnosci aktualnosci in lista)
            {
                if (aktualnosci.Id_aktualnosci == 0)
                {
                    this.dodaj(aktualnosci);
                }
                else
                {
                    this.aktualizuj(aktualnosci);
                }
            }
            return true;
        }

        public bool usun(ObservableCollection<Aktualnosci> lista)
        {

            foreach (Aktualnosci aktualnosci in lista)
            {
                // usuwanie aktualnosciu
                this.usun(aktualnosci.Id_aktualnosci);


            }
            return true;
        }
    }
}
